Load observed net-level metrics:

Load null model derived net-level metrics:

Select only metrics of interest:

Convert dataframes to long format:

Summarize null model metrics:

Check null-models metrics distribution:

Plot to compare network types:

Summary metrics:

## # A tibble: 12 × 5
## # Groups:   metric [6]
##    metric               type  obs           nulls        diff        
##    <fct>                <chr> <chr>         <chr>        <chr>       
##  1 Connectance          ind   0.3 ± 0.1     0.48 ± 0.01  -0.18 ± 0.12
##  2 Connectance          sp    0.29 ± 0.13   0.42 ± 0.01  -0.13 ± 0.1 
##  3 Weighted NODF        ind   30.37 ± 12.13 34.29 ± 4.13 -3.91 ± 7.37
##  4 Weighted NODF        sp    29.66 ± 11.53 35.56 ± 3.52 -5.89 ± 6.09
##  5 Modularity           ind   0.32 ± 0.12   0.26 ± 0.03  0.06 ± 0.06 
##  6 Modularity           sp    0.37 ± 0.1    0.25 ± 0.03  0.12 ± 0.08 
##  7 Interaction evenness ind   0.67 ± 0.07   0.68 ± 0.01  -0.02 ± 0.02
##  8 Interaction evenness sp    0.62 ± 0.07   0.66 ± 0.01  -0.03 ± 0.02
##  9 Assortativity        ind   -0.48 ± 0.17  -0.51 ± 0.05 0.03 ± 0.08 
## 10 Assortativity        sp    -0.5 ± 0.15   -0.49 ± 0.05 -0.01 ± 0.07
## 11 Centralization       ind   0.88 ± 0.07   0.86 ± 0.02  0.02 ± 0.04 
## 12 Centralization       sp    0.91 ± 0.05   0.89 ± 0.01  0.03 ± 0.04

Plot comparing metrics by network one by one:

Alternative fig 2:

2nd Alternative fig 2:

3rd alternative to fig:

Model comparisions:

##  Family: gaussian  ( identity )
## Formula:          diff ~ type + (1 | net_code)
## Data: filter(tmp2, metric == "connectance")
## 
##       AIC       BIC    logLik  deviance  df.resid 
## -592953.2 -592914.9  296480.6 -592961.2    104996 
## 
## Random effects:
## 
## Conditional model:
##  Groups   Name        Variance  Std.Dev.
##  net_code (Intercept) 0.0118810 0.10900 
##  Residual             0.0002043 0.01429 
## Number of obs: 105000, groups:  net_code, 105
## 
## Dispersion estimate for gaussian family (sigma^2): 0.000204 
## 
## Conditional model:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -0.17540    0.01607 -10.914   <2e-16 ***
## typesp       0.04574    0.02144   2.134   0.0329 *  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Object of Class DHARMa with simulated residuals based on 250 simulations with refit = FALSE . See ?DHARMa::simulateResiduals for help. 
##  
## Scaled residual values: 0.02 0.02 0.02 0.024 0.024 0.02 0.024 0.02 0.024 0.02 0.024 0.02 0.016 0.02 0.02 0.02 0.02 0.024 0.024 0.028 ...
##  Family: gaussian  ( identity )
## Formula:          diff ~ type + (1 | net_code)
## Data: filter(tmp2, metric == "weighted.NODF")
## 
##       AIC       BIC    logLik  deviance  df.resid 
##  590602.9  590641.2 -295297.5  590594.9    104996 
## 
## Random effects:
## 
## Conditional model:
##  Groups   Name        Variance Std.Dev.
##  net_code (Intercept) 43.74    6.614   
##  Residual             16.10    4.013   
## Number of obs: 105000, groups:  net_code, 105
## 
## Dispersion estimate for gaussian family (sigma^2): 16.1 
## 
## Conditional model:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  -3.9137     0.9753  -4.013    6e-05 ***
## typesp       -1.9772     1.3011  -1.520    0.129    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Object of Class DHARMa with simulated residuals based on 250 simulations with refit = FALSE . See ?DHARMa::simulateResiduals for help. 
##  
## Scaled residual values: 0.964 0.984 0.912 0.972 0.98 0.98 0.992 0.98 0.964 0.98 0.944 0.984 0.98 0.976 0.96 0.956 0.988 0.976 0.996 0.972 ...
##  Family: gaussian  ( identity )
## Formula:          diff ~ type + (1 | net_code)
## Data: filter(tmp2, metric == "M")
## 
##       AIC       BIC    logLik  deviance  df.resid 
## -453899.2 -453861.0  226953.6 -453907.2    104996 
## 
## Random effects:
## 
## Conditional model:
##  Groups   Name        Variance  Std.Dev.
##  net_code (Intercept) 0.0049470 0.07034 
##  Residual             0.0007697 0.02774 
## Number of obs: 105000, groups:  net_code, 105
## 
## Dispersion estimate for gaussian family (sigma^2): 0.00077 
## 
## Conditional model:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept)  0.06417    0.01037   6.187 6.12e-10 ***
## typesp       0.05588    0.01384   4.039 5.37e-05 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Object of Class DHARMa with simulated residuals based on 250 simulations with refit = FALSE . See ?DHARMa::simulateResiduals for help. 
##  
## Scaled residual values: 0.428 0.448 0.524 0.384 0.392 0.552 0.508 0.34 0.472 0.416 0.404 0.504 0.284 0.476 0.496 0.328 0.5 0.54 0.148 0.404 ...
##  Family: gaussian  ( identity )
## Formula:          diff ~ type + (1 | net_code)
## Data: filter(tmp2, metric == "interaction.evenness")
## 
##       AIC       BIC    logLik  deviance  df.resid 
## -696284.8 -696246.6  348146.4 -696292.8    104996 
## 
## Random effects:
## 
## Conditional model:
##  Groups   Name        Variance  Std.Dev.
##  net_code (Intercept) 4.714e-04 0.021713
##  Residual             7.652e-05 0.008748
## Number of obs: 105000, groups:  net_code, 105
## 
## Dispersion estimate for gaussian family (sigma^2): 7.65e-05 
## 
## Conditional model:
##              Estimate Std. Error z value Pr(>|z|)    
## (Intercept) -0.017300   0.003202  -5.403 6.54e-08 ***
## typesp      -0.015001   0.004271  -3.512 0.000444 ***
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Object of Class DHARMa with simulated residuals based on 250 simulations with refit = FALSE . See ?DHARMa::simulateResiduals for help. 
##  
## Scaled residual values: 0.708 0.776 0.676 0.784 0.776 0.716 0.752 0.808 0.724 0.748 0.78 0.732 0.832 0.756 0.692 0.792 0.776 0.688 0.868 0.772 ...
##  Family: gaussian  ( identity )
## Formula:          diff ~ type + (1 | net_code)
## Data: filter(tmp2, metric == "assortativity")
## 
##       AIC       BIC    logLik  deviance  df.resid 
## -315165.3 -315127.0  157586.6 -315173.3    104996 
## 
## Random effects:
## 
## Conditional model:
##  Groups   Name        Variance Std.Dev.
##  net_code (Intercept) 0.005890 0.07674 
##  Residual             0.002888 0.05374 
## Number of obs: 105000, groups:  net_code, 105
## 
## Dispersion estimate for gaussian family (sigma^2): 0.00289 
## 
## Conditional model:
##             Estimate Std. Error z value Pr(>|z|)   
## (Intercept)  0.03449    0.01132   3.047  0.00231 **
## typesp      -0.04626    0.01510  -3.064  0.00219 **
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Object of Class DHARMa with simulated residuals based on 250 simulations with refit = FALSE . See ?DHARMa::simulateResiduals for help. 
##  
## Scaled residual values: 0.632 0.708 0.72 0.82 0.824 0.728 0.76 0.472 0.608 0.66 0.568 0.628 0.704 0.76 0.776 0.736 0.44 0.608 0.696 0.656 ...
##  Family: gaussian  ( identity )
## Formula:          diff ~ type + (1 | net_code)
## Data: filter(tmp2, metric == "centralization.w")
## 
##       AIC       BIC    logLik  deviance  df.resid 
## -511968.2 -511929.9  255988.1 -511976.2    104996 
## 
## Random effects:
## 
## Conditional model:
##  Groups   Name        Variance Std.Dev.
##  net_code (Intercept) 0.001508 0.03883 
##  Residual             0.000443 0.02105 
## Number of obs: 105000, groups:  net_code, 105
## 
## Dispersion estimate for gaussian family (sigma^2): 0.000443 
## 
## Conditional model:
##             Estimate Std. Error z value Pr(>|z|)    
## (Intercept) 0.022303   0.005726   3.895 9.83e-05 ***
## typesp      0.003934   0.007639   0.515    0.607    
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

## Object of Class DHARMa with simulated residuals based on 250 simulations with refit = FALSE . See ?DHARMa::simulateResiduals for help. 
##  
## Scaled residual values: 0.232 0.26 0.268 0.252 0.26 0.272 0.28 0.192 0.252 0.252 0.3 0.276 0.22 0.22 0.268 0.208 0.228 0.268 0.248 0.252 ...